1. Field
The disclosed concept relates generally to web applications and, more particularly, to a web application framework that enables optimum rendering performance on a client based upon detected parameters of the client.
2. Related Art
It is known that web application developers develop web applications that are executed on servers and that include web content which is made available to clients via a network such as the worldwide web. Such content typically is stored in the form of web pages and other content that are made available to a web application that is deployed to a server. Such web pages often include instructions in the form of markup language such as html which are in the nature of instructions for a client, such as an instruction as to how certain content should be rendered on a display of the client.
It is understood, however, that the various clients, which may take the form of mobile electronic devices and other devices, for instances, have various hardware characteristics, software characteristics, and other characteristic that affect the capabilities of the clients. For example, the various characteristics of a client may include physical properties such as: screen size; screen resolution; screen aspect ratio; color or black-and-white-only, etc. Additionally or alternatively, the various characteristics of a client may include software capabilities, such as: does/doesn't support various fonts; does/doesn't support style sheets; supports only up to HTML 4.0 standard or supports HTML 5.0 (and it's additional features); does/doesn't support JavaScript, etc.
A given piece of markup instruction often is usable for at most a limited number of different clients since certain clients having differing characteristics likely will render in different fashions or in incorrect fashions the subject matter of the markup instructions. Additionally, web pages having JavaScript content will have their JavaScript go unexecuted if the client is incapable of executing JavaScript or has a JavaScript feature disabled.
Various methodologies have been proposed to deal with the large variety of client characteristics. One proposed solution is to provide multiple versions of any given web page, with a different version of the web page being created for each permutation of client characteristics that are deemed to be worthy of supporting. Such an approach requires extensive work by a web application developer because of the large number of times any given web page must be individually replicated in various forms to suit various device characteristics. Another approach has been to write a single version of each web page, with the content being tailored to the client having singularly the lowest level of functionality, whereby all clients, including those having progressively greater degrees of rendering functionality, will be rendered at the same low capability level. While such an approach can save effort, at least initially, on the part of the web application developer, the resulting web application has an undesirably low level of rendering functionality which fails to take advantage of the generally greater rendering capabilities of many of the existing clients. Another proposed approach is to write web applications having pages that are highly sophisticated and which include scripting instructions that are executable on a client, that detect the various characteristics of a client, and that tailor the markup instructions to take advantage of the individual client's rendering and other capabilities. However, such web applications are of an extremely high level of sophistication and are therefore difficult to create, and such web pages often are prohibitively large in size and as a result are very slow to download. Moreover, clients lacking the ability to execute such scripting instructions will be incapable of correctly rendering the content of such a web page. There thus exists a need to provide an improved methodology of enabling web content to be properly rendered on a wide variety of clients.
Similar numerals refer to similar parts throughout the specification.